package com.ruoyi.system.service;

import com.ruoyi.system.domain.message.ScheduleNotificationMessage;

import java.util.Date;

/**
 * 排班通知服务接口
 *
 * @author ruoyi
 */
public interface ScheduleNotificationService {

    /**
     * 发送排班通知
     *
     * @param message 通知消息
     */
    void sendScheduleNotification(ScheduleNotificationMessage message);

    /**
     * 发送排班创建通知
     *
     * @param officerId 警员ID
     * @param officerName 警员姓名
     * @param shiftName 班次名称
     * @param scheduleDate 排班日期
     */
    void sendScheduleCreateNotification(Long officerId, String officerName,
                                      String shiftName, Date scheduleDate);

    /**
     * 发送排班更新通知
     *
     * @param officerId 警员ID
     * @param officerName 警员姓名
     * @param shiftName 班次名称
     * @param scheduleDate 排班日期
     */
    void sendScheduleUpdateNotification(Long officerId, String officerName,
                                      String shiftName, Date scheduleDate);

    /**
     * 发送排班删除通知
     *
     * @param officerId 警员ID
     * @param officerName 警员姓名
     * @param shiftName 班次名称
     * @param scheduleDate 排班日期
     */
    void sendScheduleDeleteNotification(Long officerId, String officerName,
                                      String shiftName, Date scheduleDate);
}
